博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC -- 梗概--源码--贰--下载
阅读量:6233 次
发布时间:2019-06-22

本文共 4605 字,大约阅读时间需要 15 分钟。

1.配置web.xml

index.jsp
mvc62
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:mvc62.xml
1
mvc62
/
encoding62
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encoding62
/*

2.配置SpringMVC.xml

application/json
no
105,179,90
20
black
200
50
40
code61
4
Arial,Courier

3.配置控制器

package com.c61.controller;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.net.URLEncoder;import java.util.Map;import java.util.UUID;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.io.FilenameUtils;import org.apache.commons.io.IOUtils;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;@Controller@RequestMapping("/down")public class DownLoadController {    //通过MultipartFile接收文件    @RequestMapping("/test")    public String testDown(String name,HttpSession s,HttpServletResponse res) throws FileNotFoundException, IOException{        String path=s.getServletContext().getRealPath("/up61");        String filePath=path+File.separator+name;        //如果文件名中有中文:        String name2=URLEncoder.encode(name, "utf-8");        System.out.println(name2);        //设置响应头,实现附件形式下载文件        res.setHeader("content-disposition", "attachment;filename="+name2);        //输入流读取所有字节,输出流将所有读取到的字节写出        IOUtils.copy(new FileInputStream(filePath),res.getOutputStream());        return null;//如上语句,已经响应了请求,则必须return null;    }}

4.配置视图

View : download.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'index.jsp' starting page    
免费下载

 

下载 

1 定制超链接

<a href="${pageContext.request.contextPath}/down/test?name=html教程全.ppt">免费下载</a>

2 定制下载的Controller

public String testDown(String name,HttpSession s,HttpServletResponse res) throws FileNotFoundException, IOException{    String path=s.getServletContext().getRealPath("/up61");    String filePath=path+File.separator+name;    //如果文件名中有中文:    String name2=URLEncoder.encode(name, "utf-8");    //设置响应头,实现附件形式下载文件(告知浏览器,需要以附件形式接收)    res.setHeader("content-disposition", "attachment;filename="+name2);    //输入流读取所有字节,输出流将所有读取到的字节写出    IOUtils.copy(new FileInputStream(filePath),res.getOutputStream());    return null;//如上语句,已经响应了请求,则必须return null;}

转载地址:http://qnqna.baihongyu.com/

你可能感兴趣的文章
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>
开发者论坛一周精粹(第五十四期) 求购备案服务号1枚!
查看>>
validate表单验证及自定义方法
查看>>
javascript 中出现missing ) after argument list的错误
查看>>
使用Swagger2构建强大的RESTful API文档(2)(二十三)
查看>>
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>